home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t9.d64 / sprite data.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  3KB  |  132 lines

  1. 0 GOTO 63010
  2. 60000 END
  3. 60004 REM   SPRITE DATA GENERATOR
  4. 60006 REM
  5. 60008 REM  1. RUN THIS PROGRAM
  6. 60010 REM  2. AFTER INITIALIZING DATA,
  7. 60012 REM     THE PGM WILL ASK FOR THE
  8. 60014 REM     1ST STATEMENT NO. FOR
  9. 60016 REM     THE SPRITE DATA STATEMENT
  10. 60018 REM  3. USE   CRSR.UP
  11. 60020 REM           CRSR.DN
  12. 60022 REM           CRSR.LEFT
  13. 60024 REM           CRSR.RIGHT
  14. 60026 REM           RETURN
  15. 60028 REM  4. USE  SPACE BAR TO SET A
  16. 60030 REM     SPRITE POINT
  17. 60032 REM  5. USE . TO ERASE A SPRITE
  18. 60034 REM     POINT
  19. 60036 REM  6. WHEN FINISH EDITING,
  20. 60038 REM     PRESS  F1  TO GENERATE
  21. 60040 REM     BASIC DATA STATEMENTS
  22. 60042 REM     THAT MAY BE USED IN A
  23. 60044 REM     USER SPRITE PROGRAM
  24. 60046 REM  7. POSITION THE CURSOR
  25. 60048 REM     UNDER EACH STATEMENT
  26. 60050 REM     AND ENTER IT TO THE
  27. 60052 REM     PROGRAM
  28. 60054 REM  8. RUN THE PROGRAM AGAIN
  29. 60056 REM     TO GENERATE ANOTHER
  30. 60058 REM     SET OF SPRITE DATA
  31. 60060 REM  9. WHEN ALL SPRITE EDITING
  32. 60062 REM     IS COMPLETED, DELETE
  33. 60064 REM     STATEMENETS 60000-63400
  34. 60066 REM     AND STATEMENT 0 TO MAKE
  35. 60068 REM     ROOM FOR USER PROGRAM
  36. 60070 REM 10. IF MEMORY SPACE IS NOT
  37. 60072 REM     A CONCERN, JUST DELETE
  38. 60074 REM     STATEMENT 0 TO RUN USER
  39. 60076 REM     PROGRAM. IF THERE IS
  40. 60078 REM     NEED TO RE-EDIT SPRITE
  41. 60080 REM     SIMPLY ADD STATEMENT
  42. 60082 REM     0   GOTO 63010
  43. 60084 REM     AND RUN TO ENTER SPRITE
  44. 60086 REM     EDITING MODE AGAIN.
  45. 60088 REM 11. THIS PROGRAM TAKES ABOUT
  46. 60090 REM     4K OF MEMORY.
  47. 60092 REM
  48. 60094 REM     HAPPY SPRITING !!!
  49. 60096 REM
  50. 60098 REM
  51. 60100 REM
  52. 60102 REM
  53. 63010 DIM SDA%(3,21),SCN%(24,21)
  54. 63015 PRINT "[144][147]PLEASE WAIT...INITIALIZING DATA"
  55. 63020 POKE 53280,6:POKE 53281,10
  56. 63025 FOR J=1TO21
  57. 63030 FOR I=1TO3
  58. 63035 N=(J-1)*3+I-1
  59. 63040 POKE 832+N,0 : SDA%(I,J)=0
  60. 63045 FOR K=1TO8:K1=(I-1)*8+K:SCN%(K1,J)=0:NEXT K
  61. 63050 NEXT I: NEXT J
  62. 63055 V=53248 :POKE 53289,6
  63. 63060 POKE V+4,30 :POKE V+5,80:POKE 53264,4:POKE 53277,4:POKE 53271,4
  64. 63065 POKE V+21,4 : POKE 2042,13
  65. 63070 PRINT"[147]1ST STATEMENT # (1-59999)";:INPUT SN%
  66. 63075 IF SN%<1 OR SN%>59999 GOTO 63070
  67. 63080 PRINT"[147]   I------II------II------I"
  68. 63085 FOR I=1TO21
  69. 63090 PRINT"   ........................  "I
  70. 63095 NEXT I
  71. 63100 PRINT"EDIT SCREEN,PRESS F1[146] WHEN FINISHED ";
  72. 63105 X=1:Y=1:PRINT""SPC(3);
  73. 63110 TH$="[211]"
  74. 63115 IF SCN%(X,Y)=0 THEN TH$="."
  75. 63120 PRINT"C[157]";
  76. 63125 GET A$ :IF A$="" THEN GOTO 63125
  77. 63130 PRINT TH$"[157]";
  78. 63135 IF A$=CHR$(133) GOTO 63355:REM F1
  79. 63140 IF A$=CHR$( 13) GOTO 63180:REM RN
  80. 63145 IF A$=CHR$(145) GOTO 63205:REM UP
  81. 63150 IF A$=CHR$( 17) GOTO 63215:REM DN
  82. 63155 IF A$=CHR$( 29) GOTO 63225:REM RT
  83. 63160 IF A$=CHR$(157) GOTO 63235:REM LF
  84. 63165 IF A$=CHR$( 32) GOTO 63260:REM SP
  85. 63170 IF A$=CHR$( 46) GOTO 63245:REM .
  86. 63175 GOTO 63120
  87. 63180 IF Y=21 GOTO 63190
  88. 63185 Y=Y+1 : PRINT "";
  89. 63190 IF X=1 GOTO 63110
  90. 63195 I=X-1:FOR J=ITO1STEP-1:PRINT"[157]";
  91. 63200 X=X-1: NEXT J : GOTO 63110
  92. 63205 IF Y=1 GOTO 63110
  93. 63210 Y=Y-1: PRINT"[145]";: GOTO 63110
  94. 63215 IF Y=21 GOTO 63110
  95. 63220 Y=Y+1: PRINT"";: GOTO 63110
  96. 63225 IF X=24 GOTO 63110
  97. 63230 X=X+1: PRINT"";:GOTO 63110
  98. 63235 IF X=1  GOTO 63110
  99. 63240 X=X-1: PRINT"[157]";: GOTO 63110
  100. 63245 PRINT".[157]"; : ES=1
  101. 63250 SCN%(X,Y)=0
  102. 63255 GOTO 63270
  103. 63260 PRINT "[211][157]";: ES=2
  104. 63265 SCN%(X,Y)=1
  105. 63270 IF X>16 GOTO 63290
  106. 63275 IF X>8 GOTO 63285
  107. 63280 X1%=1 : X3%=X : GOTO 63295
  108. 63285 X1%=2 : X3%=X-8 : GOTO 63295
  109. 63290 X1%=3 : X3%=X-16 : GOTO 63295
  110. 63295 N=(Y-1)*3+X1%-1+832
  111. 63300 X2%=2^(8-X3%)
  112. 63305 IF ES=2 GOTO 63330
  113. 63310 X2%=NOT(X2%)
  114. 63315 SDA%(X1%,Y)=SDA%(X1%,Y) AND X2%
  115. 63320 POKE(N),PEEK(N) AND X2%
  116. 63325 GOTO 63340
  117. 63330 SDA%(X1%,Y)=SDA%(X1%,Y) OR X2%
  118. 63335 POKE(N),PEEK(N) OR X2%
  119. 63340 IF X<>24 GOTO 63230:REM X NOT=24
  120. 63345 IFY<>21 GOTO63180:REM AND NOT=21
  121. 63350 GOTO 63105
  122. 63355 PRINT"[147]";:POKE 53269,0
  123. 63360 FOR I=1TO19 STEP 2
  124. 63365 J=I+1
  125. 63370 PRINT SN%"DATA"SDA%(1,I)","SDA%(2,I)","SDA%(3,I)",";
  126. 63375 PRINT SDA%(1,J)","SDA%(2,J)","SDA%(3,J)
  127. 63380 SN%=SN%+10
  128. 63385 NEXT I
  129. 63390 PRINT SN%"DATA"SDA%(1,21)","SDA%(2,21)","SDA%(3,21)
  130. 63395 PRINT "  ENTER THE DATA STATMENTS INTO YOUR PROGRAM"
  131. 63400 PRINT"   RUN THE PROGRAM AGAIN TO EDIT ANOTHER SPRITE"
  132.